package com.wang.common.dao;

import java.util.List;
import java.util.Map;

import com.wang.common.util.PageInfoUtil;

/**
 * Dao的父接口
 * <p>
 * 接口也要用到泛型
 *
 * @author wangshMac
 */
public interface IBaseDao<T> {
    /**
     * 保存一条记录
     *
     * @param t 实体对象
     * @return 影响条数
     */
    int saveOne(T t);

    /**
     * 更新一条记录
     *
     * @param t 实体对象
     * @return 影响条数
     */
    int updateOne(T t);

    /**
     * 删除一条记录
     *
     * @param condMap 查询条件
     * @return 影响条数
     */
    int deleteOne(Map<String, Object> condMap);

    /**
     * 查询一条记录
     * <p>
     * 按照id或者用户名查询,
     * 查询的结果都是一条
     *
     * @param condMap 键:名字标识,值:条件的值
     * @return 查询结果一条记录
     */
    T findOne(Map<String, Object> condMap);

    /**
     * 查询多条记录
     *
     * @param pageInfoUtil 分页的工具类;如果为null,表示不分页;不为空,表示分页
     * @param condMap      键:名字标识,值:条件的值
     * @return 查询结果多条记录
     */
    List<T> findCondList(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
}
